home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
FM Towns: Free Software Collection 4
/
FM Towns Free Software Collection 4 - Disc 1.iso
/
t_os
/
fapx
/
fapxupld.plp
< prev
next >
Wrap
Text File
|
1991-10-18
|
10KB
|
410 lines
/************************************************************************
* 自動アップロード処理の定義 *
*************************************************************************/
/* 現在の会議室にメッセージをアップする */
%MSGup {
[replyto,title,text]
var reply [3];
reply:=replyto;
loop (
{
case (reply<1||reply>999||reply={},
{No},
{
type({RE }|reply|{\n});
wait (Wtime2,{AbortOff({ホストがおもいよ~\n})},
{\n:},{type({1\n})},
{◆該当する発言はありません◆},
{
WAITABORT(Wtime2);
reply:={};
im({Yes});
},
{行頭で/E)\n},{im({No})}
);
},
{Yes},
{
type({SAY\n});
WAITCHAR(Wtime2,
{属性 (1:メッセージ 2:コメント)\n:},
{type({1\n})}
);
WAITCHAR(Wtime2,{行頭で/E)\n},{});
im({No});
}
);
}
);
case (title={},
{No},{type({SUB:}|title|{\n})},
{Yes},{type({SUB:自動アップロードです\n})}
);
case(text<>{},{Yes},{send(text)});
type({\n/E\n});
WAITCHAR(Wtime2,{(1:修正する 2:しない)\n:},{type({2\n})});
WAITCHAR(Wtime2,{(1:登録する 2:しない)\n:},{type({1\n})});
WAITABORT(Wtime2);
};
/* 現在のフォーラムの会議室を指定してメッセージをアップする */
%MESup {
[mesno,replyto,title,text]
case (mesno<1||mesno>20||mesno={},
{Yes},{MSGup(replyto,title,text)},
{No},
{
type({MES }|mesno|{\n});
wait (Wtime2,{AbortOff({ホストがおもいよ~\n})},
{該当する会議室がありません},
{WAITABORT(Wtime4)},
{\n>},
{MSGup(replyto,title,text)}
);
}
);
};
/* フォーラムと会議室を指定してメッセージをアップする */
%FORUMup{
[forum,mesno,replyto,title,text]
display(forum|{の会議室}|mesno|{番にアップロードします\n});
case (
forum={},
{Yes},{MESup(mesno,replyto,title,text)},
{No},
{
type({GO }|forum|{\n});
case (
@FORUMTOP={OK},
{No},,
{Yes},
{MESup(mesno,replyto,title,text)}
);
}
);
};
/* バイナリメールをアップする */
%BMAILup1
{
[sendto,date]
var send2 [90];
var iderr [3];
send2:=sendto;
iderr:={No};
loop (
{
wait (Wtime2,{AbortOff({ホストがおもいよ~\n})},
{(IDか同報グループ名 改行で終了)\n:},
{case (@head(send2,{,})={},
{Yes},
{type({\n})},
{No},
{type(@head(send2,{,})|{\n})}
);
}
);
wait (Wtime2,{AbortOff({ホストがおもいよ~\n})},
{(1:OK 2:NG) \n:},
{type({1\n});send2:=@body(send2,{,});im({Yes})},
{◆入力データエラー◆},
{send2:=@body(send2,{,});im({Yes})},
{◆既に入力されています◆},
{send2:=@body(send2,{,});im({Yes})},
{◆宛先を指定して下さい◆},
{send2:=ID;iderr:={Yes};im({Yes})},
{送信},
{im({No})},
);
}
);
wait (Wtime2,{AbortOff({ホストがおもいよ~\n})},
{1:送信する 2:しない)\n:},
{case(iderr,{Yes},{type({2\n})},{No},{type({1\n}}))},
{2:しない 3:期日指定)\n:},
{case (iderr,
{Yes},{type({2\n})},{No},
{case (date={},
{Yes},{type({1\n})},
{No},
{type({3\n});
WAITCHAR(Wtime2,
{例:990101)\n:},{type(date|{\n})});
wait (Wtime2,
{AbortOff({ホストがおもいよ~})},
{(1:OK 2:NG) \n:},{type({1\n})},
{例:990101)\n:},{type({\n})});
/* 日付指定間違いの場合即時送信する */
}
);
}
);
}
);
};
%BMAILup{
[sendto,title,file,date]
display(sendto|{へバイナリメールを送ります\n});
type({GO MAIL\n});
WAITCHAR(Wtime2,{0:その他 E:終了)\n>},{type({UPLOAD PROT:BPL\n})});
WAITCHAR(Wtime2,{属性 (1:テキスト 2:バイナリー)\n>},{type({2\n})});
WAITCHAR(Wtime2,{ファイル名 (改行のみで終了)\n:},{type(file|{\n})});
WAITCHAR(,{-アップロード終了-},{});
WAITCHAR(Wtime2,{題名 (漢字で20文字まで)\n:},
{case (title<>{},
{Yes},{type(title|{\n})},
{No}, {type({自動メール送信です\n})}
)
});
WAITCHAR(Wtime2,{(1:OK 2:NG)\n:},{type({1\n})});
BMAILup1(sendto,date);
WAITCHAR(Wtime2,{1:受信 2:送信 3:送信簿 0:その他 E:終了)\n>},{});
};
/* 宛先が複数あれば複数指定する(テキストメールのみ) */
%MAILup3{
[address]
case (
@head(address,{,}),
{},,
,
{
type({TO:}|@head(address,{,})|{\n});
MAILup3(@body(address,{,}));
}
);
};
/* 題名や宛先を実行時に指定する */
%MAILup2{
wait (
Wtime2,,
{題名 (漢字で20文字まで)\n:},
{type({自動送信メール\n});MAILup2;},
{又は FAX番号 改行で終了)\n:},
{type({\n});MAILup2;},
{◆宛先を指定して下さい◆}, /*宛先IDがない場合自分に送信*/
{WAITCHAR(Wtime2,{改行で終了)\n:},{type(ID|{\n});MAILup2})},
{◆入力データエラー◆},
{MAILup2},
{◆既に入力されています◆},
{MAILup2},
{(1:OK 2:NG)\n:},
{type({1\n});MAILup2;},
{(1:OK 2:NG) \n:},
{type({1\n});MAILup2;},
{送信 (1:送信する 2:しない)\n:},
{type({1\n})},
{送信(1:送信する 2:しない 3:期日指定)\n:},
{type({1\n})}, /* エグゼクティブオプション */
{(西暦下 2桁で指定 改行で期日指定なし 例:990101)\n:},
{type({\n});MAILup2;} /* 期日指定誤りの場合 */
);
};
/* メールをアップする */
%MAILup {
[sendto,title,text,date]
display(sendto|{へメールを送ります\n});
type({GO MAIL\n});
WAITCHAR(Wtime2,{0:その他 E:終了)\n>},{type({2\n})});
WAITCHAR(Wtime2,{終了は行頭で/E)\n},{});
MAILup3(sendto);
case(title={},{Yes},,{No},{type({SUB:}|title|{\n})});
case(date={},{Yes},,{No},{type({SDATE:}|date|{\n})});
case(text,{},,,{send(text)});
type({\n/E\n});
WAITCHAR(Wtime2,{(1:修正する 2:しない)\n:},{type({2\n})});
MAILup2;
WAITCHAR(Wtime2,{\n>},{});
};
/* HPにメッセージをアップする */
%HPup {
[hpid,pass,title,text]
%HPup1 {
[title,text]
type({WRITE\n});
WAITCHAR(Wtime2,{モードで20文字以内)\n:},{type(title|{\n})});
WAITCHAR(Wtime2,{(1:OK 2:NG) \n:},{type({1\n})});
WAITCHAR(Wtime2,{終了は行頭で/E)\n},{});
case(text,{},,,{send(text)});
type({\n/E\n});
WAITCHAR(Wtime2,{修正する 2:しない)\n:},{type({2\n})});
WAITCHAR(Wtime2,{登録する 2:しない)\n:},{type({1\n})});
WAITCHAR(Wtime2,{\nHP>},{});
};
display(hpid|{のホームパーティにアップロードします\n});
type({GO HP\n});
WAITCHAR(Wtime2,{2. Home Partyの説明\n>},{type({1\n})});
WAITCHAR(Wtime2,{:自分のHP)\n:},{type(hpid|{\n})});
wait (
Wtime2, {AbortOff({\nホストの反応が鈍いよぉ~\n})},
{2. Home Partyの説明\n>},
{
SNDMSG({okasi_f.snd});
display({ホームパーティのIDが違っています\n});
},
{設置しますか?(y/n)\n:},
{type({N\n});WAITABORT(Wtime2);},
{パスワード\n:},
{
loop (
{
type(pass|{\n});
wait (
Wtime2,
{AbortOff({\nホストの反応が鈍いよぉ~\n})},
{\nHP>},{
HPup1(title,text);
type({T\n});
WAITABORT(Wtime2);
im({No});
},
{パスワード\n:},{im({Yes})},
{2. Home Partyの説明\n>},{im({No})}
);
}
);
}
);
};
/************************************************************************
* 制御ファイルの内容に従って自動アップロードする *
*************************************************************************/
/* アップロードするテキストファイル名を決定する */
%UPtext {
[fname]
case (
fname={memo1}||fname={memo2}||
fname={memo3}||fname={memo4}||
fname={memo5}||fname={memo6}||
fname={memo7}||fname={memo8}||
fname={memo9},
{Yes},
{
case (@mlast>=@getchar(fname,5,1)&&@mcheck==0,
{Yes},
{
mwrite(TEMP2|{_moptext.txt},@getchar(fname,5,1));
im(TEMP2|{_moptext.txt});
},
{No},
{
SNDMSG({okasi_f.snd});
display(fname|{が使えません\n});
im({});
}
)
},
{No},
{im(fname)}
);
};
/* アップ先の振り分け */
%AUTOup1{
line:=line+1;
linebuf:={};
case (
file={memo1}||file={memo2}||file={memo3}||
file={memo4}||file={memo5}||file={memo6}||
file={memo7}||file={memo8}||file={memo9},
{Yes},
{case (
@mlast>=@getchar(file,5,1)&&@mcheck==0,
{Yes},
{linebuf:=@memo(@getchar(file,5,1),line,1)},
{No},
{
SNDMSG({okasi_f.snd});
display(file|{が使えません\n});
linebuf:={};
}
)
},
{No},
{linebuf:=@read(file,line,1)}
);
case (
@head(linebuf,{=}),
{forum}, /* フォーラムへアップ */
{
FORUMup(@tail(linebuf,{forum=},{;}),
@tail(linebuf,{mes=},{;}),
@tail(linebuf,{reply=},{;}),
@tail(linebuf,{title=},{;}),
@UPtext(@tail(linebuf,{file=},{;}))
);
AUTOup1;
},
{mail}, /* メールをアップ */
{
MAILup( @tail(linebuf,{mail=},{;}),
@tail(linebuf,{title=},{;}),
@UPtext(@tail(linebuf,{file=},{;})),
@tail(linebuf,{date=},{;})
);
AUTOup1;
},
{bmail}, /* バイナリメールをアップ */
{
BMAILup(@tail(linebuf,{bmail=},{;}),
@tail(linebuf,{title=},{;}),
@tail(linebuf,{file=},{;}),
@tail(linebuf,{date=},{;})
);
AUTOup1;
},
{hp}, /* ホームパーティへアップ */
{
HPup( @tail(linebuf,{hp=},{;}),
@tail(linebuf,{pass=},{;}),
@tail(linebuf,{title=},{;}),
@UPtext(@tail(linebuf,{file=},{;}))
);
AUTOup1;
},
{},, /* 空文字列なら終了 */
,AUTOup1 /* それ以外なら次の行を読む */
);
};
%AUTOup {
[file]
case (
@filechk(file)||file={memo1}||file={memo2}||file={memo3}||
file={memo4}||file={memo5}||file={memo6}||
file={memo7}||file={memo8}||file={memo9},
{Yes},
{
line:=0;
AUTOup1;
},
{No},
{
SNDMSG({okasi_f.snd});
display({\n}|file|{制御ファイルがありません\n});
}
);
};
/* アップロード制御ファイル指定の有無の判定処理 */
%AUTOUPLD
{
display({自動アップロードを開始します\n});
footnote({自動アップロードをしています});
case (
upldcntl={},
{No},{AUTOup(upldcntl)},
{Yes},
);
};
AUTOUPLD;